package ca.seia.comp6521.a2.itemsetalgorithms;

import java.util.List;
import java.util.Set;

import ca.seia.comp6521.a2.itemsetstorage.CharItems;
import ca.seia.comp6521.a2.itemsetstorage.IntItems;

/**
 * @author itoe
 *
 */
public class PassNResult {

	private List<IntItems> candidateFrequentItems;
	private List<CharItems> candidateCharFrequentItems;
	private Set<IntItems> uniqueCandidateFrequentItems;
	private long executionTime;
	private int passNumber;
	private int totalTransactionLines;
	private int support;

	public PassNResult(Set<IntItems> uniqueCandidateFrequentItems, long executionTime, int passNumber) {
		this.passNumber = passNumber;
		this.executionTime = executionTime;
		this.uniqueCandidateFrequentItems = uniqueCandidateFrequentItems;
	}
	
	public PassNResult(List<IntItems> candidateFrequentItems, long executionTime, int passNumber) {
		this(candidateFrequentItems,executionTime,passNumber,0);
	}
	
	
	public PassNResult(List<IntItems> candidateFrequentItems, long executionTime, int passNumber, int totalTransactionLines) {
		this.candidateFrequentItems = candidateFrequentItems;
		this.totalTransactionLines = totalTransactionLines;
		this.passNumber = passNumber;
		this.executionTime = executionTime;
	}
	
	public PassNResult(long executionTime, int passNumber , int totalTransactionLines, List<CharItems> candidateCharFrequentItems ) {
		this.candidateCharFrequentItems = candidateCharFrequentItems;
		this.passNumber = passNumber;
		this.totalTransactionLines = totalTransactionLines;
		this.executionTime = executionTime;
	}
	
	public PassNResult(long executionTime, int passNumber , List<CharItems> candidateCharFrequentItems ) {
		this(executionTime,passNumber,0,candidateCharFrequentItems);
	}

	
	public List<IntItems> getCandidateFrequentItems() {
		return candidateFrequentItems;
	}
	public void setCandidateFrequentItems(List<IntItems> candidateFrequentItems) {
		this.candidateFrequentItems = candidateFrequentItems;
	}
	public List<CharItems> getCandidateCharFrequentItems() {
		return candidateCharFrequentItems;
	}
	public void setCandidateCharFrequentItems(List<CharItems> candidateCharFrequentItems) {
		this.candidateCharFrequentItems = candidateCharFrequentItems;
	}
	public long getExecutionTime() {
		return executionTime;
	}
	public void setExecutionTime(long executionTime) {
		this.executionTime = executionTime;
	}
	public int getPassNumber() {
		return passNumber;
	}
	public void setPassNumber(int passNumber) {
		this.passNumber = passNumber;
	}

	public int getTotalTransactionLines() {
		return totalTransactionLines;
	}

	public void setTotalTransactionLines(int totalTransactionLines) {
		this.totalTransactionLines = totalTransactionLines;
	}


	public int getSupport() {
		return support;
	}


	public void setSupport(int support) {
		this.support = support;
	}

	public Set<IntItems> getUniqueCandidateFrequentItems() {
		return uniqueCandidateFrequentItems;
	}

	public void setUniqueCandidateFrequentItems(Set<IntItems> uniqueCandidateFrequentItems) {
		this.uniqueCandidateFrequentItems = uniqueCandidateFrequentItems;
	}
	
	
	
}
